Data paths using a first signal to capture data and a second signal to output data and methods for providing data

ABSTRACT

Data paths, memories, and methods for providing data from memory are disclosed. An example read data path includes a delay path, and a clocked data register. The data path has a data propagation delay and is configured to receive data and propagate the data therethrough. The delay path is configured to receive a clock signal and provide a delayed clock signal having a delay relative to the clock signal that models the data propagation delay. The clocked data register is configured to clock in data responsive at least in part to the delayed clock signal. The clocked data register is further configured to clock out data responsive at least in part to the clock signal.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No. 12/938,130, filed Nov. 2, 2010. This application is incorporated by reference herein in its entirety and for all purposes.

TECHNICAL FIELD

Embodiments of the invention relate generally to semiconductor memory, and more specifically, in one or more illustrated embodiments, to semiconductor memory having a data register, the data register clocked to capture read data responsive to a first signal and to output read data responsive to a second signal.

BACKGROUND OF THE INVENTION

Integrated circuits often operate based on a system clock signal that may be used to synchronize operation of components of the system. As faster operation of the system is desired, a clock frequency of the system clock will typically be increased. The operability of the integrated circuits should scale with the higher clock frequency to ensure error free operation at the higher speed.

An example of a circuit that is clocked at the frequency of a system clock is a read data path that provides data from, for example, a memory array to be output. FIG. 1 illustrates a read data path 100. The read data path 100 includes a multiplexer 112 coupled to a data cache register (DDC) and a databus 110. The DDC is segmented into two portions DDC0 and DDC1, each of which provides read data to a respective input of the multiplexer 112 in response to a clock signal CLK. The read data is provided from the DDC to the multiplexer 112 in an interleaved manner. The multiplexer 112 is controlled by the CLK signal to switch back and forth between providing read data from DDC0 and providing read data from DDC1 to a clocked data register 130 over the databus 110. Read data is clocked into (and out of) the clocked data register 130 responsive to the CLK signal.

Operation of the read data path 100 is described with reference to FIG. 2A. At time T0 a rising edge of the CLK signal clocks DDC0 and at time T1, after a propagation delay of DDC0, data “A” is provided (e.g. output) from DDC0 to the multiplexer 112. A falling edge of the CLK signal at time T2 clocks DDC1 and also controls the multiplexer 112 to couple the input from DDC0 to the databus 110 to provide read data A to the clocked data register 130. At time T3 read data “1” is output from DDC1 (delay relative to the falling edge of the CLK signal caused by DDC propagation delay) and at time 14, after a propagation delay of the multiplexer 112 and the databus 110, read data A arrives at the clocked data register 130. The data register is clocked by the rising edge of the CLK signal at time T5 (i.e., the next rising edge of the CLK signal following the rising edge that clocked DDC0 to release data A) to capture (e.g. clock in) read data A. Data 1 is provided by the multiplexer 112 over the databus 110 to the clocked data register 130 in response to the rising edge of the CLK signal at time T5. After the propagation delay of the multiplexer 112 and the data bus 110, data 1 arrives at the clocked data register 130 at time T6 and is captured by the falling edge of the CLK signal at time T7. Data captured by the clocked data register 130 are later output (e.g. clocked out) responsive to the CLK signal.

FIG. 2B illustrates operation of the read data path 100 with a CLK signal having twice the clock frequency of the CLK signal of FIG. 2A. At time T0 a rising edge of the CLK signal clocks DDC0 and at time T2, after a propagation delay of the DDC0, data “A” is output to the multiplexer 112. Due to the higher frequency of the CLK signal, a falling edge of the CLK signal occurs at time T1 before data A is provided to the multiplexer 112. The multiplexer 112 is controlled by the falling edge of the CLK signal at time T2 to provide data A to its output, and as a result, when data A is output by DDC0 data A is provided by the multiplexer 112 to the databus 110. Due to the propagation delay of the multiplexer 112 and the databus 110, data A is not provided to the clocked data register 130 until time T5. The rising edge of the CLK signal at time T3, however, is the edge designated to latch data A (i.e., the rising edge after the rising edge clocking DDC0) into the clocked data register 130. Consequently, unknown data on the databus at time T3 and not data A will be captured (e.g. latched) into the clocked data register 130. Similarly, data 1 provided by DDC1 in response to the falling edge of the CLK signal at time T1 will also not be correctly captured by the falling edge of the CLK signal at T5.

As shown by FIGS. 2A and 2B, although the read data path 100 may be operable for a clock signal having a first frequency, it may not be operable when the clock signal is scaled to a higher second frequency.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a conventional read data path.

FIGS. 2A and 2B are timing diagrams of various signals during operation of the read data path of FIG. 1.

FIG. 3 is a block diagram of a read data path according to an embodiment of the invention.

FIG. 4 is a timing diagram of various signals during operation of the read data path of FIG. 3 according to an embodiment of the invention.

FIG. 5 is a block diagram of a read data path according to an alternative embodiment of the invention.

FIG. 6 is a block diagram of a memory including a read data path according to an embodiment of the invention.

DETAILED DESCRIPTION

Certain details are set forth below to provide a sufficient understanding of embodiments of the invention. However, it will be clear to one skilled in the art that embodiments of the invention may be practiced without these particular details. Moreover, the particular embodiments of the present invention described herein are provided by way of example and should not be used to limit the scope of the invention to these particular embodiments. In other instances, well-known circuits, control signals, timing protocols, and software operations have not been shown in detail in order to avoid unnecessarily obscuring the invention.

FIG. 3 illustrates a read data path 300 according to an embodiment of the invention. The read data path 300 includes a multiplexer 312 coupled to receive read data from a data cache register (DDC) and provide the data to a data bus 310. The DDC is shown in FIG. 3 as being split into two functionally operable data cache registers DDC0 and DDC1, however, other data cache register configurations (e.g., splitting the DDC into greater or fewer functionally operable portions) may be used as well. DDC0 and DDC are provided data, for example, from memory (not shown in FIG. 3). As will be explained in more detail below, the data cache registers DDC0 and DDC1 are operated in an interleaved fashion to provide data to the multiplexer 312. That is, DDC0 provides data at a first time while DDC1 is loaded with data, and DDC1 provides data at a second time while DDC0 is loaded with data. The read data is provided over the databus 310 to a clocked data register 330 that clocks in the read data responsive to a first clock signal and outputs read data responsive to a second clock signal. The clocked data register 330 is illustrated in FIG. 3 as a first-in-first-out (FIFO) register, however, other clocked registers now known or later developed may be used as well. The read data path 300 further includes a matched delay path 320 that delays an input clock signal to provide a delayed clock signal CLKd to clock read data into the clocked read register 330. The delay path 320 includes a first model delay 315 that models a propagation delay of the DDC to provide a delayed clock signal CLKDEL. The output of the model delay 315 may be used to control input selection of the multiplexer 312. The delay path 320 further includes a second model delay 322 that receives the CLKDEL signal from the first model delay 315 and models a propagation delay of the multiplexer 312. The second model delay 322 provides the delayed clock signal CLKd to the clocked read register 330 over a signal path that generally matches (i.e. has approximately the same propagation delay as) the propagation delay of the databus 310.

In the embodiment of the read data path 300 shown in FIG. 3, a clock signal CLK is provided to the delay path 320 to provide the delayed clock signal CLKd to be used to clock read data into the clocked read register 330. The CLK signal may be used to clock read data out of the clocked read register 330. As will be described in more detail below, delaying the CLK signal by approximately the same propagation delay as the read data from the DDC and through the multiplexer 312 and over the databus 310, and clocking read data into the clocked read register 330 with the CLKd signal may facilitate accurate capturing (e.g. latching) of read data.

FIG. 4 will be referenced to describe operation of the read data path 300 with a clock signal having a frequency approximately twice that of the CLK signal of FIG. 2A. As previously discussed, the read data path 100 of FIG. 1 was unable to accurately latch data from the DDC using a clock signal of this frequency.

In operation, at time T0 a clock transition of the CLK signal clocks the DDC0 and data “A” propagates through DDC0 to be output to the multiplexer 312 at time T2. The CLK signal is also provided to the delay path 320, which as previously discussed, includes the first model delay 315 that models a propagation delay of the DDC. This results in a delayed clock signal CLKDEL having clock transitions relative to clock transitions of the CLK signal with approximately the same delay data A has relative to the CLK signal clocking the DDC. As previously discussed, the CLKDEL signal may be used to control the multiplexer 312 in some embodiments. For example, the CLKDEL signal may be used to control which of the inputs of the multiplexer 312 is coupled to its output. In the embodiment the operation of which is shown in FIG. 4, the transition of the CLKDEL signal controls the multiplexer 312 to couple the input receiving data A from DDC0 to its output, resulting in data A being output to the data register 330 after a propagation delay of the multiplexer 312 (not shown in FIG. 4).

Data A arrives at the input of the data register 330 a finite time after being output from the multiplexer 312 due to a propagation delay of the databus 310 coupling the output of the multiplexer 312 to the data register 330. The CLKd signal is provided to the data register 330 by the model delay 322 and is based on the CLKDEL signal. The CLKd signal is delayed by an amount approximately equal to the propagation delay of the databus 310, and is used to clock the data register 330 at time T5 to capture data A. Although the rising edge of the CLKd signal at time T5 is illustrated as coincident with Data A becoming valid, the data register 330 may be configured to provide a finite delay from the rising edge (or falling edge) of the CLKd signal before actually latching data at its input to allow the data to stabilize. The CLK signal is used to later clock data A from the read register 330 (not shown in FIG. 4).

With respect to the interleaved operation of DDC1, after time T0 and before time T2 a clock transition of CLK at time T1 clocks the DDC1 and data “1” propagates from DDC1 to be output to the multiplexer 312 at time T4. The CLKDEL signal, which is delayed by the model delay 315, clocks the multiplexer 312 to couple the input receiving data 1 from DDC1 to its output. As with data A output by the multiplexer 312, data 1 is output by the multiplexer 312 in response to the clock transition of CLKDEL at T4 and will take a finite time to propagate over the databus 310 to the data register 330. As with clocking the data register 330 to capture data A, the delayed CLKd signal having a delay approximately equal to the propagation delay of data 1 from the multiplexer 312 to the read register 330 is used to clock the data register 330 to capture data 1. Data 1 is later clocked out of the data register 330 by the CLK signal.

As further shown in FIG. 4, a transition of the CLK signal at time T3 clocks the DDC0 and data “B” propagates through DDC0 to be provided to the multiplexer 312 at time T6. The CLKDEL signal having approximately the same delay relative to the CLK signal as the data propagation delay of the DDC controls the multiplexer 312 to couple the input receiving data B to its output responsive to the transition of the CLKDEL signal at time T6. Data B is output to the data register 330 after a propagation delay of the multiplexer 312 (not shown in FIG. 4) and is captured by the data register 330 at time T9 responsive to the CLKd signal. The CLKd signal, as previously discussed, has approximately the same propagation delay as data B over the data path. After time T3 and before time T6 a clock transition of CLK at time T5 clocks the DDC and data “2” propagates from DDC1 to be output to the multiplexer 312 at time T8. The CLKDEL signal, which is delayed by the model delay 315 of the delay path 320, clocks the multiplexer 312 to couple the input receiving data 2 from DDC1 to its output. Data 2 is output by the multiplexer 312 in response to the clock transition of CLKDEL at T8 and will take a finite time to propagate over the databus 310 to the data register 330. As with clocking the data register 330 to capture data B, the delayed CLKd signal having a delay approximately equal to the propagation delay of data 2 over the data path 310 is used to clock the data register 330 to capture data 2.

The operation of the read data path 300 to capture data output by the DDC in the interleaved manner continues as previously described. In summary, the read data path 300 facilitates accurately capturing read data into the data register 330 by delaying the clock signal used to clock data out from the DDC by a delay approximately equal to the propagation delay of the data path (e.g., propagation delay of DDC, multiplexer 312, and databus 310) to clock data into the data register 330. The read data is asynchronously loaded into the data register 330 by the delayed clock signal. Moreover, the read data path 300 may allow the datapath as a whole to be operated with a delay that is greater than a clock period of the CLK signal.

FIG. 5 illustrates a read data path 500 according to an embodiment of the invention. The data path 500 includes a multiplexer 512 coupled to receive read data from a data cache register (DDC) and a databus 510 on which data is provided by the multiplexer 512. As with the read data path 300 (FIG. 3), the DDC is shown in FIG. 5 as being split into two functionally operable data cache registers DDC0 and DDC1, however, other data cache register configurations may be used as well. DDC0 and DDC1 are provided data, for example, from memory (not shown in FIG. 5). The databus 510 provides read data to a clocked data register 530 that clocks in read data responsive to a first clock signal and outputs read data responsive to a second clock signal. The clocked data register 530 is illustrated in FIG. 5 as a first-in-first-out (FIFO) register, however, other clocked registers now known or later developed may be used as well. The read data path 500 further includes a delay path 520 that delays an input clock signal to provide a delayed clock signal. The delay path 520 includes a first model delay 515 that models a propagation delay of the DDC to provide a delayed clock signal CLKDEL, and further includes a second model delay 522 that receives the CLKDEL signal from the first model delay 515 and models a propagation delay of the multiplexer 512. The second model delay 522 provides a delayed clock signal CLKd to the clocked data register 530 over a signal path having a propagation delay matched to the databus 510.

The read data path 500 is similar to the read data path 300 of FIG. 3, but the multiplexer 512 is controlled by a delayed clock signal CLKDMUX provided by a delay 514 rather than a delayed version of the CLK signal provided by the matched delay path 520. The CLKDMUX signal is based at least in part on the CLK signal. The delay 514 may be a trimmable delay having a delay that can be adjusted by trimming. As with the read data path 300, however, the CLK signal is provided to the delay path 520 to provide a CLKd signal to the data register 530 having approximately the same delay as the propagation delay of DDC, multiplexer 512, and the databus 510 to clock read data into the clocked register 530. The CLK signal is used to clock read data out of the clocked data register 530. Operation of the read data path 500 is similar to that previously described with respect to the read data path 300 except that the multiplexer 512 switches between outputting data from DDC0 and DDC1 responsive to the CLKDMUX signal.

FIG. 6 illustrates a memory 600 including a read data path according to an embodiment of the invention. The memory 600 includes an array 630 of memory cells arranged in banks of rows and columns. Command signals, the address signals and the write data signals are generally applied to the memory 600 as sets of sequential input/output (“I/O”) signals (illustrated in the example of FIG. 6 as I/O[7:0] and/or I/O[15:0]) transmitted through an I/O bus 634. Similarly, read data signals are output from the memory 600 through the I/O bus 634. The I/O bus is connected to an I/O control unit 640 that routes the signals between the I/O bus 634 and an internal data bus 642, an internal address bus 644, and an internal command bus 646. The memory 600 also includes a control logic unit 650 that receives a number of control signals either externally (illustrated in the example of FIG. 6 as CE#, CLE, ALE, WE#, RE#, and WP#) or through the command bus 646 to control the operation of the memory 600. The address bus 644 applies row address signals to a row decoder 660 and column address signals to a column decoder 664. Similarly, the column decoder 664 enables write data signals to be applied to bit lines for columns corresponding to the column address signals and allow read data signals to be coupled from bit lines for columns corresponding to the column address signals.

In response to the memory commands decoded by the control logic unit 650, the memory cells in the array 630 are erased, programmed, or read. The memory array 630 is programmed on a row-by-row or page-by-page basis. After the row address signals have been applied to the address bus 644, the I/O control unit 640 routes write data to a read and write register 680. The read and write register 680 provide the write data to a data cache register 670. The write data are stored in the data cache register 670 in successive sets each having a size corresponding to the width of the I/O bus 634. The data cache register 670 sequentially stores the sets of write data for an entire row or page of memory cells in the array 630. All of the stored write data are then used to program a row or page of memory cells in the array 630 selected by the row address coupled through the address bus 644. In a similar manner, during a read operation, read data from a row or page of memory cells selected by the row address coupled through the address bus 644 are stored in the data cache register 670. The read and write register 680 receives the read data from the data cache register 670 at a read data path 690, for example, a read data path according to an embodiment of the invention. Sets of read data corresponding in size to the width of the I/O bus 634 are then sequentially transferred through the I/O control unit 640 from the read and write register 680 to the I/O bus 634.

From the foregoing it will be appreciated that, although specific embodiments of the invention have been described herein for purposes of illustration, various modifications may be made without deviating from the spirit and scope of the invention. Accordingly, the invention is not limited except as by the appended claims. 

1. An apparatus comprising: a clock path configured to delay a clock signal approximately a same amount as a data signal is delayed in a data path; and a data register coupled to the clock path and the data path and configured to capture data based on the delayed clock signal and provide the data based on the clock signal.
 2. The apparatus of claim 1, wherein the delayed clock signal is delayed in relation to the clock signal.
 3. The apparatus of claim 1, wherein the data path comprises: a data cache register configured to receive the data signal; a multiplexer having a plurality of inputs coupled to the data cache register and an output, the multiplexer configured to couple one of the plurality of inputs to the output responsive to a control signal; and a data bus coupled to the output of the multiplexer and having a propagation delay.
 4. The apparatus of claim 3, wherein the delay path comprises a plurality of model delays, the plurality of model delays configured to model a corresponding delay of the data path.
 5. The apparatus of claim 4, wherein a first model delay of the plurality of model delays is configured to model a delay of the data cache register, and wherein the clock signal after being delayed by the first model delay is the control signal for the multiplexer.
 6. The apparatus of claim 4, wherein a second model delay of the plurality of model delays is configured to model a delay of the multiplexer.
 7. The apparatus of claim 4, wherein the delay path further includes a signal path configured to model a propagation delay of the data bus.
 8. A method comprising: propagating data through a data path to a data register; delaying a clock signal by a delay that models a propagation delay of the data path; capturing data by the data register based on the delayed the clock signal; and providing the data by the data register based on the clock signal.
 9. The method of claim 8, wherein delaying the clock signal comprises propagating the clock signal through a delay path having a propagation delay that models a propagation delay of the data path.
 10. The method of claim 8, wherein delaying the clock signal comprises delaying the clock signal by a plurality of model delays, wherein each model delay models a delay amount of a respective segment of the data path.
 11. The method of claim 10, wherein delaying the clock signal by a plurality of model delays further comprises: delaying the clock signal by a first delay that models a delay of a data cache register of the data path; further delaying the clock signal by a second delay that models a delay of a multiplexer; and further delaying the clock signal by a third delay that models a delay of a data bus.
 12. The method of claim 8, wherein propagating data through a data path to a data register further comprises: propagating data through a data cache register; propagating data through a multiplexer controlled by a control signal; and propagating data through a data bus.
 13. The method of claim 8, further comprising: selecting data from a plurality of data cache registers based on a control signal, wherein the control signal is a partially delayed clock signal; and providing the selected data to the data register.
 14. An apparatus comprising: a data path configured to receive data and propagate the data, the data path having a data path propagation delay and the data path comprising a multiplexer controlled by a control signal; a clock path configured to receive a clock signal and delay the clock signal an amount of delay substantially equal to the data path propagation delay; and a data register configured to receive the data in response to the delayed clock signal and provide the data in response to the clock signal.
 15. The apparatus of claim 14, further comprising a delay to delay the clock signal another amount of delay, the other delayed clock signal being the control signal.
 16. The apparatus of claim 15, wherein the delay is adjustable.
 17. The apparatus of claim 14, wherein the data path further comprises a data bus coupling the multiplexer to the data register, the data bus having an associated bus propagation delay.
 18. The apparatus of claim 14, wherein the clock path includes a first model delay configured to receive the clock signal and configured to delay the clock signal an amount of delay approximately equal to an amount of delay associated with a data cache register of the data path, and wherein the first model delay provides the control signal.
 19. The apparatus of claim 18, wherein the clock path further includes a second model delay coupled to an output of the first model delay and configured to further delay the clock signal an amount of delay approximately equal to an amount of delay associated with the multiplexer.
 20. The apparatus of claim 19, wherein an output of the second model delay provides the delayed clock signal to the data register over a signal path, the signal path further delaying the clock signal an amount of delay approximately equal to a delay of a data bus of the data path. 